<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                    <p:commandButton styleClass="actionButton" id="filtrarProductoButton" value="Filtrar" onclick="dialogoFiltrarProducto.show();"></p:commandButton>  
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                    <p:dialog id="dialogoFiltrarProducto" modal="true" widgetVar="dialogoFiltrarProducto"  header="#{messages.FiltrarProducto}">
                        <h:panelGrid id="panelDialogoFiltrado" columns="2">
                            <p:outputLabel for="filtrarD" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu  converter="#{dConverter}" id="filtrarD" value="#{estimacionesProductoBean.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarC" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="filtrarC" value="#{estimacionesProductoBean.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarS" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="filtrarS" value="#{estimacionesProductoBean.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarTemporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="filtrarTemporada" value="#{estimacionesProductoBean.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSerieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="filtrarSerieTallaje" value="#{estimacionesProductoBean.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="filtrarSexo" value="#{estimacionesProductoBean.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarProveedor" value="#{messages.Proveedor}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarProveedor" value="#{estimacionesProductoBean.filtradoDataModel.proveedorFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaProveedor}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="proveedor" itemLabel="#{proveedor.nombreComercial}" itemValue="#{proveedor}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarFabricanteTela" value="#{messages.FabricanteTela}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarFabricanteTela" value="#{estimacionesProductoBean.filtradoDataModel.fabricanteTelaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaFabricanteTela}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="fabricanteTela" itemLabel="#{fabricanteTela.nombreComercial}" itemValue="#{fabricanteTela}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarActivo" value="#{messages.Activo}"></p:outputLabel>
                            <p:selectOneMenu id="filtrarActivo" value="#{estimacionesProductoBean.filtradoDataModel.activoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.Indiferente}" itemValue="" />  
                                <f:selectItem itemLabel="#{messages.Activo}" itemValue="#{true}" />
                                <f:selectItem itemLabel="#{messages.Inactivo}" itemValue="#{false}" />
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":productoForm:productoGrowl :productoForm:productos" value="#{messages.Filtrar}" actionListener="#{estimacionesProductoBean.filtrar()}"></p:commandButton>
                    </p:dialog>
                </h:form>
            </ui:define>
            <ui:define name="content">
                <h:form id="productoForm">
                    <h:outputStylesheet library="css" name="estimaciones.css"></h:outputStylesheet>
                    <p:growl autoUpdate="true" life="4000" id="productoGrowl"></p:growl>
                    <p:panel styleClass="" id="panelUpdate">
                        <p:dataTable emptyMessage="#{messages.NoProductos}" resizableColumns="true" id="productos" var="producto" rowIndexVar="productoRow" rowKey="#{producto.idProducto}" value="#{estimacionesProductoBean.listadoEntidades}">
                        <p:column sortBy="#{producto.c.descripcion}" headerText="#{messages.C}" filterBy="#{producto.c.descripcion}" filterMatchMode="contains" style="width:80px">
                            <h:outputText value="#{producto.c.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.temporada.descripcion}" headerText="#{messages.Temporada}" filterBy="#{producto.temporada.descripcion}" filterMatchMode="contains" style="width:40px">
                            <h:outputText value="#{producto.temporada.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.descripcion}" headerText="#{messages.Nombre}" filterBy="#{producto.descripcion}" filterMatchMode="contains" style="width:80px">
                            <h:outputText value="#{producto.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.color}" headerText="#{messages.Color}" filterBy="#{producto.color}" filterMatchMode="contains" style="width:40px">
                            <h:outputText value="#{producto.color}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.pvp}" headerText="#{messages.PvpEsp}" style="width:30px">
                            <h:outputText value="#{producto.pvp}">
                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                            </h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.cotizacion}" headerText="#{messages.Cotizacion}" style="width:30px">
                            <h:outputText value="#{producto.cotizacion}">
                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                            </h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.pvp/producto.cotizacion}" headerText="#{messages.Multiplicador}" style="width:30px">
                            <h:outputText rendered="#{!producto.cotizacion.equals(BigDecimal.ZERO) and producto.cotizacion!=null}" value="#{producto.pvp.doubleValue()/producto.cotizacion.doubleValue()}">
                                <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                            </h:outputText> 
                        </p:column>
                        <p:column sortBy="#{producto.proveedor.nombreComercial}" style="width:120px" headerText="#{messages.Proveedor}" filterBy="#{producto.proveedor.nombreComercial}" filterMatchMode="contains">
                            <h:outputText rendered="#{producto.proveedor!=null}" value="#{producto.proveedor.nombreComercial}"></h:outputText> 
                            <h:outputText rendered="#{producto.proveedor==null}" value="#{messages.NoDisponible}"></h:outputText>
                        </p:column>
                        <p:column headerText="#{messages.Estimacion}" style="width:300px">
                            <p:panelGrid styleClass="transparentBackground" columns="1">
                                <ui:repeat var="productoTalla" value="#{producto.productoTallaList}">
                                    <h:outputText styleClass="spanVendido" style="font-weight:bold" value="#{productoTalla.talla.descripcion}"></h:outputText>
                                </ui:repeat>
                                <ui:repeat var="productoTalla" value="#{producto.productoTallaList}">
                                    <p:inputText styleClass="pedidoInput procesar" rendered="#{estimacionesProductoBean.recuperarEstimacionDeProductoTalla(productoTalla)!=null}" value="#{estimacionesProductoBean.recuperarEstimacionDeProductoTalla(productoTalla).cantidad}">
                                        <p:ajax event="change" process=":productoForm:panelUpdate" update="@(.totalEstimacion)" listener="#{estimacionesProductoBean.guardarEstimacion(productoTalla)}"></p:ajax>
                                    </p:inputText>
                                </ui:repeat>
                                <ui:repeat var="productoTalla" value="#{producto.productoTallaList}">
                                    <h:outputText styleClass="spanVendido" value="#{estimacionesProductoBean.recuperarCantidadVendidaDeProductoTalla(productoTalla)}">
                                    </h:outputText>
                                </ui:repeat>
                            </p:panelGrid>
                        
                        </p:column>
                            
                        <p:column headerText="#{messages.Totales}" style="width:40px">
                            <h:outputText value="#{estimacionesProductoBean.recuperarEstimacionDeProducto(producto)}" id="update" styleClass="spanTotal totalEstimacion"></h:outputText>
                            <h:outputText value="#{estimacionesProductoBean.recuperarCandidadVendidaDeProducto(producto)}" styleClass="spanTotal totalVentas"></h:outputText>
                        </p:column>
                    </p:dataTable>
                    </p:panel>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
